In a robot control apparatus according to the related art, control in which using a position of a hand etc. of the top of a robot as a control point, its speed does not exceed a command speed or control in which a speed of a joint part at a time when passing through a singular point does not exceed a limit speed of a driving apparatus has been performed.
FIG. 6 is a diagram showing an appearance configuration of a horizontal joint type robot used in the related art and comprising a robot 1, a control apparatus 2, and a manual operation apparatus 3 for operating the robot. The robot 1 comprises a hand 11 for grasping an article, a second arm 12, a first arm 13, a support 14, and a base 15.
FIG. 7 is a block diagram showing each internal configuration of the control apparatus 2 for robot and the manual operation apparatus 3 described in JP-A-11-104981. But, in order to make a configuration of a robot apparatus clear, an appearance of the robot 1 is appended to the diagram. The control apparatus 2 comprises a parameter storage part 21, a locus generation part 22, a speed control part 23, a motion command part 24, and a driving control part 25. Also, the manual operation apparatus 3 comprises a key input part 31 and a key information output part 32.
A key operation by an operator is inputted to the key input part 31 of the manual operation apparatus 3 and the information is outputted to the key information output part 32. As a result of this, manual motion information ΔP outputted is inputted to the locus generation part 22 of the control apparatus 2. Here, in accordance with the manual motion information ΔP, a command speed VS stored in the parameter storage part 21 is selected and based on this command speed VS, the movement amount ΔL per unit time ΔT, which is a calculation cycle of the control apparatus 2, is calculated.ΔL=VS×ΔT
Motion locus generation is performed based on the movement amount ΔL calculated here.P2=P1+ΔL
where P1 indicates the present position of the robot 1 and P2 indicates a motion target position of the robot 1. The motion target position P2 of the robot 1 generated here is outputted to the speed control part 23 as a motion command. In the speed control part 23, speed monitor control is performed based on the motion target position P2. Here, the actual speed Vj is calculated by using the present position P1 of the robot 1 and the motion target position P2.Vj=|P2−P1|/ΔT
With the calculated speed Vj, a speed ratio Vratio is calculated from the command speed VS stored in the parameter storage part 21.Vratio=VS/Vj
Here, a case of Vratio>1 indicates that a speed can be increased still and a case of Vratio<1 indicates that the present speed needs to be decreased.
By using the ratio of Vratio calculated here, the motion target position P2 is again created in the motion command part 24.P2=P1+ΔL×Vratio
The motion target position P2 calculated here is outputted to the driving control part 25 as a motion command. By performing speed monitoring in this speed control part 23 and regeneration of the motion target position in the motion command part 24 every calculation cycle of the control apparatus 2, motions are made at a speed lower than or equal to a reference speed.
As described above, in the robot control apparatus according to the related art, a movement speed is controlled so that the hand 11 of the robot top or a joint part is used as a control point and its speed does not exceed a safe speed. Also, even during a teaching mode of the robot, since a teacher works in very close contact with the robot, it is disclosed that the movement speed is controlled so that the speed of the hand 11 or the joint part which is the control point does not exceed the safe speed in order to ensure the safety.
However, the robot generally comprises plural joints, and depending on an attitude, the hand 11 mounted in the arm top or the joint part may not move at the highest speed. These examples will be described using motion illustrations of the robot of FIGS. 8 to 10.
First, in a horizontal joint type robot shown in a motion illustration of FIG. 8, when a position of a hand 11 is moved from a point A to a point B, a point C which is a joint part between the first arm 13 and the second arm 12 moves to a point D about a turn center point O of a support 14. Also, a point E which is the top of the first arm 13 moves to a point F and as is evident from the drawing, it is found that a line segment EF of the movement amount of the top of the first arm 13 is longer and a movement speed thereof is larger as compared with a line segment AB of the position movement amount of the hand 11. Generally, in the case that the point A which is a position of the hand 11 is located within a radius of a length Lo of the first arm 13 when viewed from the turn center point O of the support 14, an elbow part which is a joint part between the first arm 13 and the second arm 12, namely the point C or point E moves at a speed larger than a movement speed of the hand 11.
Further, in a horizontal joint type robot shown in a motion illustration of FIG. 9, similarly when a point A of a position of a hand 11 is moved from a state in which a first arm 13 and a second arm 12 extend in a straight line to a point B toward a turn center point O of a support 14, a point C of a joint part between the first arm 13 and the second arm 12 and a point E of the top of the first arm 13 move at a speed higher than that of the point A of the position of the hand 11.
Furthermore, in a vertical multi-joint type robot shown in FIG. 10, as the same marks as the horizontal joint type robot shown in FIG. 8 are allotted, a point C of a joint part moves at a speed higher than that of a point A of a position of a hand 11 and further one point E of a second arm 12 moves at a high speed.